package com.taichuan.selfcheck.utils;

/**
 * 该类主要用于
 *
 * @author CamelLuo
 * @version 2020/1/8
 */
public class UrlUtils {

    /**
     * 定义一个方法用于将域名地址 和ip地址 转换为可执行 ping指令 的url地址
     * 例: https://www.baidu.com/              -> www.baidu.com
     *     http://www.qq.com:8000/             -> www.qq.com
     *     http://56.183.35.42:8000/             -> 56.183.35.42
     * @param url 域名地址 或 ip地址(可附带端口号)
     * @return 处理后的url地址或ip地址
     */
    public static String getUrlCanPing(String url) {
        String excudeHttpUrl;
        String excudeSlashUrl;

        //先过滤http域名头
        excudeHttpUrl = excudeUrlHttpHead(url);
        //过滤url地址中的末尾斜杠
        excudeSlashUrl = excudeUrlEndSlash(excudeHttpUrl);
        //过滤url地址中的端口号
        return excudeUrlPort(excudeSlashUrl);
    }

    /**
     * 定义一个方法用于移除传入的 域名地址 和ip地址 中附带的端口号
     * 例: https://www.baidu.com/              -> https://www.baidu.com/
     *     http://www.qq.com:8000/             -> http://www.qq.com
     *     http://56.183.35.42:8000/             -> http://56.183.35.42
     * @param url 域名地址 或 ip地址
     * @return 处理后的url地址或ip地址
     */
    public static String excudeUrlPort(String url){
        String excudeUrl = url;
        if (url.contains(":")){
            String[] splitUrl = url.split(":");
            if (splitUrl.length > 0) {
                excudeUrl = splitUrl[0];
            }
        }
        return excudeUrl;
    }

    /**
     * 定义一个方法用于移除传入的 域名地址 和ip地址 中的http /https 协议头
     * 例: https://www.baidu.com/              -> www.baidu.com/
     *     http://www.qq.com:8000/             -> www.qq.com:8000/
     *     http://56.183.35.42:8000/           -> 56.183.35.42:8000/
     * @param url 域名地址 或 ip地址
     * @return 处理后的url地址或ip地址
     */
    public static String excudeUrlHttpHead(String url) {
        if (url.contains("http://")){
            url = url.replace("http://","");
        }
        if (url.contains("https://")){
            url = url.replace("https://","");
        }
        return url;
    }

    /**
     * 定义一个方法用于移除传入的 域名地址 和ip地址 中末尾的 “/ ”斜杠
     * 例: https://www.baidu.com/              -> https://www.baidu.com
     *     http://www.qq.com:8000/             -> http://www.qq.com:8000
     *     http://56.183.35.42:8000/           -> http://56.183.35.42:8000
     * @param url 域名地址 或 ip地址
     * @return 处理后的url地址或ip地址
     */
    public static String excudeUrlEndSlash(String url){
        String excudeUrl = url;
        if (url.endsWith("/")){
            excudeUrl = url.substring(0,url.length() - 1);
        }
        return excudeUrl;
    }
}
